To provide a service or application (generally “an application”) using virtualized network platforms, a set of one or more virtual network functions (VNFs) may be instantiated on general purpose hardware. For example, a VNF may be a firewall, cache, gateway, intrusion detection system, or the like. Each VNF may require one or more virtual machines (VMs) to be instantiated. In turn, VMs may require various resources, such as memory, virtual computer processing units (vCPUs), and network interfaces or network interface cards (NICs). Determining how to assign these resources among in an efficient manner may be unbearably complex.
This disclosure is directed to solving one or more of the problems in the existing technology.